#ifndef BSP_MSGSEND_H_
#define BSP_MSGSEND_H_

#include <stdint.h>

// 定义一些常用的命令码
#define CMD_IMU_DATA      0xA0    // IMU 数据
#define CMD_SPEED_DATA    0xA1    // 小车速度数据
#define CMD_SERVO_DATA    0xA2    // 舵机角度数据
#define CMD_BATTERY       0xA3    // 电池电压等信息

/**
 * @brief 发送指定格式的数据帧
 * @param command 命令码
 * @param data 数据缓冲区
 * @param length 数据长度
 */
void msg_send(uint8_t command, const uint8_t *data, uint8_t length);

/**
 * @brief 发送 IMU 数据
 * @param timestamp 时间戳
 * @param accel 加速度
 * @param gyro 陀螺仪
 */
void send_imu_data(uint32_t timestamp, const float accel[3], const float gyro[3]);

/**
 * @brief 发送小车三轴速度数据
 * @param vx X轴速度
 * @param vy Y轴速度
 * @param vz Z轴速度
 */
void send_speed_data(int16_t vx, int16_t vy, int16_t vz);

/**
 * @brief 发送电池电压数据
 * @param voltage 电池电压值（单位：mV 或 V，可自定义）
 */
void send_battery_voltage(uint16_t voltage);

#endif /* BSP_MSGSEND_H_ */